From: smh22@uridium.cl.cam.ac.uk Date: Wed, 18 Dec 2002 18:07:22 +0000 (+0000) Subject: bitkeeper revision 1.12 (3e00b95a3fK0b9XF_UVth6TivqeezA) X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~19115 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e1c642ea89639d8eff4cafd611542bb7bbb084ae;p=xen.git bitkeeper revision 1.12 (3e00b95a3fK0b9XF_UVth6TivqeezA) fix silly large mem request => panic death bug --- diff --git a/.bk-to-hg b/.bk-to-hg index cd3d4032d7..ce02b86560 100755 --- a/.bk-to-hg +++ b/.bk-to-hg @@ -1,6 +1,6 @@ #!/bin/sh -x set -e -test -L foo -rm foo +test -L xenolinux-2.4.16-sparse/include/asm-xeno/hypervisor-ifs +rm xenolinux-2.4.16-sparse/include/asm-xeno/hypervisor-ifs (find -depth -type d -print | xargs -r rmdir 2>/dev/null) || true exit 0 diff --git a/.hg-to-bk b/.hg-to-bk index aa8849ce08..0788072115 100755 --- a/.hg-to-bk +++ b/.hg-to-bk @@ -1,5 +1,8 @@ #!/bin/sh -x set -e -ln -s ../../../xen-2.4.16/include/hypervisor-ifs/ foo +mkdir -p xenolinux-2.4.16-sparse +mkdir -p xenolinux-2.4.16-sparse/include +mkdir -p xenolinux-2.4.16-sparse/include/asm-xeno +ln -s ../../../xen-2.4.16/include/hypervisor-ifs xenolinux-2.4.16-sparse/include/asm-xeno/hypervisor-ifs (find -depth -type d -print | xargs -r rmdir 2>/dev/null) || true exit 0 diff --git a/.rootkeys b/.rootkeys index 05dda51e57..dc4843677a 100644 --- a/.rootkeys +++ b/.rootkeys @@ -1,7 +1,6 @@ 3ddb6b0bKlMz_dz-M59a1mkUa1lASw BitKeeper/etc/config 3ddb6b0buTaC5zg1_a8FoAR9FWi_mw BitKeeper/etc/ignore 3ddb79c9_hgSp-gsQm8HqWM_9W3B_A BitKeeper/etc/logging_ok -3deb3f5bhXnxocVMiXaeZ0L7fQBGaw foo 3ddb79bcbOVHh38VJzc97-JEGD4dJQ xen-2.4.16/Makefile 3ddb79bcCa2VbsMp7mWKlhgwLQUQGA xen-2.4.16/README 3ddb79bcWnTwYsQRWl_PaneJfa6p0w xen-2.4.16/Rules.mk @@ -318,6 +317,7 @@ 3ddb79batzR40ZFY9dvgs5f1aM9I6g xenolinux-2.4.16-sparse/include/asm-xeno/hdreg.h 3ddb79b90xBgbeYgCcImS2ZxJakxBA xenolinux-2.4.16-sparse/include/asm-xeno/highmem.h 3ddb79baXLZV3dUKQI2gIYpAy67RuA xenolinux-2.4.16-sparse/include/asm-xeno/hw_irq.h +3e00b957iYsdTI1x6THRwMoWSPIW2Q xenolinux-2.4.16-sparse/include/asm-xeno/hypervisor-ifs 3ddb79bapQ9Z9ewa5O1pqAVaNBTazg xenolinux-2.4.16-sparse/include/asm-xeno/hypervisor.h 3ddb79baL-pjPI8hg5xjPgd4__SlOA xenolinux-2.4.16-sparse/include/asm-xeno/i387.h 3ddb79ba66TwvG7HpbBo04fRhmj3KQ xenolinux-2.4.16-sparse/include/asm-xeno/ide.h diff --git a/xen-2.4.16/common/page_alloc.c b/xen-2.4.16/common/page_alloc.c index b7cd2c1a7b..72785c8a35 100644 --- a/xen-2.4.16/common/page_alloc.c +++ b/xen-2.4.16/common/page_alloc.c @@ -178,13 +178,19 @@ unsigned long __get_free_pages(int mask, int order) spin_lock_irqsave(&alloc_lock, flags); - /* Found smallest order which can satisfy the request. */ - for ( i = order; FREELIST_EMPTY(free_list[i]); i++ ) - { - if ( i == FREELIST_SIZE ) - panic("Out of memory!\n"); + + /* Find smallest order which can satisfy the request. */ + for ( i = order; i < FREELIST_SIZE; i++ ) { + if ( !FREELIST_EMPTY(free_list[i]) ) + break; } + if ( i == FREELIST_SIZE ) + { + printk("Cannot handle page request order %d!\n", order); + return NULL; + } + /* Unlink a chunk. */ alloc_ch = free_list[i]; free_list[i] = alloc_ch->next;